╘HE BOOT SECTOR IS A FEATURE WHICH IS SUPPOSED TO LAUNCH SOFTWARE OFF THE DISK AS SOON AS THE COMPUTER IS POWERED UP OR RESET. ╚OWEVER, USING THIS HANDY FEATURE FOR YOUR OWN PURPOSES HAS BEEN VERY DIFFICULT. ╘HE AUTOBOOT TOOL CONSISTS OF SEVERAL MODULES WHICH MAKES CREATION AND MANIPULATION OF BOOT SECTORS QUICK AND EASY. ╨LEASE NOTE THAT USING ╘╚┼ ╙┼╥╓┴╬╘, A BOOT SECTOR MAY BE CREATED AND EXECUTED ON A DISK DRIVE OF ANY DEVICE NUMBER.
╙╨┼├╔┴╠ ╬╧╘┼ TO 1581 USERS: ╒SING THE ┴UTOBOOT ╘OOL, THE ROOT DIRECTORY WILL BE AUTOMATICALLY SELECTED. ┴ BOOT SECTOR CANNOT EXIST UNDER A SUBDIRECTORY.
┴╬┴╠┘┌┼ ┬╧╧╘ ╙┼├╘╧╥:
╘HIS FEATURE WILL DECODE THE BOOT SECTOR AND DISPLAY ITS RESULTS ON THE SCREEN. ╞IRST, IT INDICATES IF A BOOT SECTOR IS PRESENT, IF THE BOOT SECTOR IS OCCUPIED BY A FILE, OR IF A "KILLED" BOOT SECTOR IS PRESENT. ╔F A BOOT SECTOR EXIST, YOU'LL BE WARNED IF IT IS NOT PROTECTED FROM OVERWRITING (NOT PROTECTED BY ┬┴═). ╔N THAT CASE USE THE ╨ROTECT ╙ECTOR(S) FEATURE TO PROTECT IT IF DESIRED. ╔F A BOOT SECTOR OR KILLED BOOT SECTOR EXISTS, THE FOLLOWING INFORMATION IS PROVIDED:
1) ┴DDITIONAL BOOT SECTORS INFO. ╘HE ├128 BOOT SYSTEM INCLUDES AN OPTION TO READ ADDITIONAL BLOCKS OFF THE DISK AS PART OF THE BOOT AREA. ╘HESE EXTRA SECTORS STARTS AT TRACK 1, SECTOR 1, AND CONTINUE ONWARD FROM THERE. ┴ TOTAL OF 255 EXTRA BOOT SECTORS CAN BE SPECIFIED, MAKING THE BOOT AREA USE SEVERAL WHOLE TRACKS. ╘HE ├128 BOOT FEATURE MAKES IT POSSIBLE TO PLACE THESE EXTRA BLOCKS ANYWHERE IN THE COMPUTER'S MEMORY. ╚OW MANY EXTRA BLOCKS TO BE LOADED, THE ADDRESS AND MEMORY BANK WHERE THEY ARE PLACED ARE DISPLAYED.
2) ╠OAD ╨╥╟ FILE: ┴ FILE NAME CAN BE SPECIFIED IN THE BOOT SECTOR, AND IF PRESENT, A ╨╥╟ FILE OF THAT NAME IS LOADED INTO BANK 0 ╥┴═. ╘HE LOAD ADDRESS IS DETERMINED BY THE LOAD ADDRESS OF THE PROGRAM ITSELF. ╘HE FILE NAME (IF ANY) WILL BE DISPLAYED ALONG WITH THE LOAD ADDRESS. ╘HE LOAD ADDRESS MUST BE SOUGHT IN THE FILE ITSELF, AND IF THE FILE CAN'T BE READ, A ─╧╙ ERROR MESSAGE IS DISPLAYED INSTEAD OF THE LOAD ADDRESS.
3) ═╠ CODE START: ╘HE BOOT SECTOR MUST CONTAIN SOME ═╠ CODE TO DETERMINE WHAT THE BOOT SECTOR IS SUPPOSED TO DO. ╔T MAY BE A SIMPLE ╩═╨ INSTRUCTION (SIMILAR TO ┬┴╙╔├ ╙┘╙), OR AN ELABORATE ═╠ PROGRAM. ╘HE START ADDRESS OF THE ═╠ CODE IS NOT FIXED; IT IS DETERMINED BY THE LENGTH OF THE BOOT MESSAGE (SEE BELOW) AND FILE NAME (ABOVE). ╘HE START ADDRESS IS DISPLAYED AS AN OFFSET FROM THE START OF THE BOOT BUFFER IN THE COMPUTER'S MEMORY. ╘HE BOOT BUFFER IS AT ADDRESS 2816 ($0B00) IN BANK 0. ╘O CALCULATE THE REAL START ADDRESS OF THE ═╠ CODE, ADD THIS NUMBER TO THE OFFSET VALUE.
4) ┬OOT MESSAGE: ┴N OPTIONAL MESSAGE CAN BE DISPLAYED WHEN A BOOT IS PERFORMED (┬╧╧╘ XXXX ...). ╧FTEN, THE NAME OF THE PROGRAM TO BE BOOTED IS DISPLAYED, BUT THE MESSAGE MAY CONTAIN JUST ABOUT ANYTHING. ╘HE MESSAGE MAY CONTAIN CONTROL CODES WHICH IS (BY THE BOOT SECTOR ANALYZER) DISPLAYED AS ╥╓╙ CHARACTERS.
5) ├OMMAND LINE: ╒NLIKE THE OTHER INFORMATION ON THE ANALYZER SCREEN, THIS IS NOT AN INHERENT FEATURE OF ├128 BOOT SECTORS. ╥ATHER, BY USING A SMALL PIECE OF ═╠ CODE, IT IS POSSIBLE TO EXECUTE A ┬┴╙╔├ COMMAND LINE. ╘╚┼ ╙┼╥╓┴╬╘S ┴UTOBOOT ╘OOL CONTAINS A PROVISION FOR CREATING A COMMAND LINE OF YOUR OWN FANCY. ╙INCE THIS IS THE KIND OF BOOT SECTORS YOU ARE PROBABLY MOST OFTEN GOING TO CREATE YOURSELF, THE ┬┴╙╔├ COMMAND LINE (IF FOUND) IS INCLUDED HERE. ╔NCIDENTALLY, THE SAME METHOD IS USED BY THE "AUTOBOOT MAKER" INCLUDED ON THE ╘EST/─EMO DISK SUPPLIED WITH ├OMMODORE DISK DRIVES.
╚IT ANY KEY TO RETURN TO THE ┴UTOBOOT ╘OOL MENU.
─╒═╨ ╙┼├╘╧╥:
─ISPLAYS THE CONTENTS OF TRACK 1 SECTOR 0 AS ┴╙├╔╔ CHARACTERS, REGARDLESS IF IT CONTAINS A BOOT SECTOR OR NOT. ├ONTROL CHARACTERS ARE DISPLAYED AS ╥╓╙ CODES. ┴ BOOT SECTOR HAS THE LETTERS "CBM" AS THE THREE FIRST CHARACTERS. ╘HE ─UMP FEATURE MIGHT BE USEFUL FOR REVEALING THINGS ABOUT A BOOT SECTOR THAT WOULD OTHERWISE BE DIFFICULT TO DISCLOSE. ┴LSO, IF THE BOOT SECTOR IS BLOCKED BY A PROGRAM, YOU MIGHT BE ABLE TO IDENTIFY THE PROGRAM WHICH CAUSES THE INTERFERENCE.
╚IT ANY KEY TO RETURN TO THE ┴UTOBOOT ╘OOL MENU.
═┴╦┼ ┬╧╧╘ ╙┼├╘╧╥:
╘HE OBJECTIVE HERE IS TO CREATE A DIRECT MODE ┬┴╙╔├ PROGRAM LINE TO BE EXECUTED UPON BOOTING. ┴LL IMMEDIATE MODE ┬┴╙╔├ COMMANDS CAN BE USED, AND THE POSSIBILITIES ARE LIMITED BY IMAGINATION AND THE SIZE OF THE BOOT SECTOR.
╒PON SELECTION OF ├REATE FROM THE ┴UTOBOOT ╘OOL MENU, YOU'RE WARNED IF A BOOT SECTOR IS ALREADY PRESENT ON THE DISK, OR IF THE BOOT SECTOR IS TAKEN BY A PROGRAM OR OTHER DATA. ╔F YOU WISH TO PRESERVE AN ORIGINAL BOOT SECTOR, PLEASE USE THE ┬OOT ╘O ╞ILE FEATURE FIRST.
┼NTERING THE BOOT MESSAGE:
╧PTIONALLY, YOU CAN ENTER A MESSAGE TO BE DISPLAYED UPON BOOT (┬╧╧╘╔╬╟ XXXX ...). ╘HERE ARE A TOTAL OF 239 CHARACTERS AVAILABLE FOR THE BOOT MESSAGE AND COMMAND LINE. ┼VERY CHARACTER OF THE BOOT MESSAGE WILL STEAL SPACE FROM THE COMMAND LINE. ╩UST PRESS ╥┼╘╒╥╬ WITHOUT ENTERING ANYTHING IF YOU DON'T WANT A BOOT MESSAGE.
╨LEASE NOTE THAT YOU ARE NOT LIMITED TO PLAIN TEXT; CONTROL CHARACTERS MAY ALSO BE USED. ╨LEASE REFER TO ┴PPENDIX ╞ FOR AN OVERVIEW OF THE CONTROL CHARACTERS AND HOW THEY ARE ENTERED. ┴LSO PLEASE NOTE THAT YOUR COMPUTER IN MOST CASES WILL BE IN UPPERCASE/GRAPHICS MODE (ALIAS "CURSOR UP" MODE) WHEN THE BOOT MESSAGE IS DISPLAYED. ╘EXT ENTERED AS LOWERCASE WILL APPEAR AS UPPERCASE, AND UPPERCASE CHARACTERS WILL APPEAR AS GRAPHIC SYMBOLS. ┘OU MAY CIRCUMVENT THIS BY ENTERING A ╥╓╙ N AS THE FIRST CHARACTER. ╘HIS WILL PUT THE COMPUTER INTO LOWERCASE MODE (ALSO CALLED "CURSOR DOWN" MODE) WHEN THE BOOT SECTOR IS EXECUTED.
╨╠┼┴╙┼ ╬╧╘┼: ╬┼╓┼╥ USE A ╥╓╙ @ IN YOUR BOOT SECTORS. ┴ ╥╓╙ @ WILL YIELD AN ┴╙├╔╔ CODE OF ZERO WHICH WILL EFFECTIVELY TERMINATE THE STRING OR COMMAND LINE. ═ALFUNCTION WILL BE INEVITABLE.
┼NTERING THE COMMAND LINE:
╘HIS IS JUST LIKE ENTERING A COMMAND LINE IN THE ┬┴╙╔├ IMMEDIATE MODE. ╙EVERAL COMMANDS CAN BE USED, SEPARATED BY COLONS. ╠OOPS CAN BE CONSTRUCTED USING ╞╧╥-╬┼╪╘ OR ─╧-╠╧╧╨/┼╪╔╘. ─ECISIONS CAN ME MADE USING ╔╞/╘╚┼╬/┼╠╙┼. ╨LEASE NOTE THAT YOU ARE NOT RESTRICTED TO THE 160 CHARACTER LIMIT ALLOWED BY THE ┬┴╙╔├ SCREEN EDITOR. 239 CHARACTERS IS AVAILABLE, MINUS THE LENGTH OF THE BOOT MESSAGE (IF ANY). ┘OU MAY USE ABBREVIATED ┬┴╙╔├ COMMANDS IF NECESSARY. ╧F COURSE, THE ┬┴╙╔├ COMMANDS YOU ARE GOING TO USE MOST OFTEN IS ┬╧╧╘ "FILENAME" ┬╠╧┴─ "FILENAME", ╙┘╙ AND ╥╒╬ "FILENAME".
╔T IS IMPORTANT TO USE GOOD SENSE WHEN CONSTRUCTING A COMMAND LINE. ╥EMEMBER THAT YOU ARE LIMITED TO ┬┴╙╔├ COMMANDS LEGAL IN IMMEDIATE MODE. ╘HIS MEANS THAT ╔╬╨╒╘, ╔╬╨╒╘#, ╟┼╘ AND ╟┼╘# ARE OUT. ╥┼┴─/─┴╘┴, ╟╧╘╧ AND ╟╧╙╒┬ WON'T WORK BECAUSE THE COMMAND LINE DON'T CONTAIN LINE NUMBERS.
┴LSO BE CAREFUL WHEN USING ╔╞-╘╚┼╬. ╘HE COMMAND LINE AFTER THE ╘╚┼╬ STATEMENT WILL BE EXECUTED ╧╬╠┘ IF THE CRITERIA SET IN THE ╔╞ STATEMENT IS TRUE. ╠ET'S SAY THAT YOU WANT TO SET FAST MODE IF THE COMPUTER IS BOOTED WITH THE 80 COLUMN SCREEN ACTIVE AND THEN RUN A PROGRAM. ┘OU MIGHT TRY THIS:
IF RGR (0)=5 THEN FAST:RUN "PROGRAM"
╘HIS WILL SEEM TO WORK PERFECTLY IN 80 COLUMNS, BUT THE PROGRAM WON'T BE RUN IN 40 COLUMNS, WHY? ╘HE COMMANDS AFTER ╘╚┼╬ WILL BE EXECUTED ONLY IF THE CONDITIONS IN THE ╔╞ STATEMENTS IS TRUE. ╘HE LINE BELOW WILL CURE THE PROBLEM:
IF RGR (0)=5 THEN FAST:RUN "PROGRAM":ELSE RUN "PROGRAM"
┘OU MUST TELL THE COMPUTER THAT YOU WANT TO RUN THE PROGRAM WHETHER OR NOT THE 80 COLUMN SCREEN IS ACTIVE. ┴GAIN, PLEASE NOTE THAT ANY COMMANDS FOLLOWING A ┼╠╙┼ STATEMENT WILL BE EXECUTED ╧╬╠┘ OF THE CONDITIONS IN THE ╔╞ STATEMENT IS ╞┴╠╙┼. ╘HIS MEANS THAT IF SEVERAL COMMANDS IS TO BE EXECUTED IN EITHER CASE AFTER AN ╔╞-╘╚┼╬áCOMMAND, THEY MUST ALL BE INCLUDED TWICE; ONCE AFTER THE ╘╚┼╬ COMMAND, AND ONCE AFTER THE ┼╠╙┼ COMMAND. ╧F COURSE, YOU MAY CONSIDER WRITING A NORMAL ┬┴╙╔├ PROGRAM WHICH IS RUN BY A SIMPLE RUN "FILENAME" COMMAND IN THE BOOT SECTOR.
├ONTROL CODES MAY BE ENTERED AS PART OF THE COMMAND LINE, BUT ONLY INSIDE QUOTES. ├ONTROL CHARACTERS OUTSIDE QUOTES WILL INVOKE A ╙┘╬╘┴╪ ┼╥╥╧╥. ┘OU MAY NOTICE THAT TYPING A QUOTE CHARACTER WON'T INVOKE "QUOTE MODE". ╥ATHER, IF YOU WANT TO INCLUDE CURSOR CONTROL, INSERT, DELETE, HOME, CLEAR OR RETURN CODES, HOLD DOWN ┴╠╘ AND PRESS THE APPROPRIATE KEY. ┴LSO PLEASE READ ┴PPENDIX ┼.
╫HEN THE COMMAND LINE IS ENTERED, PRESS ╥┼╘╒╥╬ TO WRITE YOUR BOOT SECTOR TO DISK. ┬EFORE DOING SO HOWEVER, THE COMPUTER WILL ASK YOU IF ITS ╧╦ TO PROCEED.
╘RICKS AND TIPS:
┘OU MAY FIND IT VERY USEFUL TO BE ABLE TO BOOT A PROGRAM FROM ANY DISK DRIVE. ╨┼┼╦ING ADDRESS 186 WILL ENABLE YOU TO DO SO. ╫HEN THE BOOT SECTOR IS EXECUTED, THIS LOCATION WILL HOLD THE DEVICE NUMBER USED. ╞OR EXAMPLE RUNNING A ┬┴╙╔├áPROGRAM FROM ANY DISK DRIVE IS DONE LIKE THIS:
RUN "PROGRAM",U(PEEK(186))
╨LEASE NOTE THE USE OF PARENTHESES. ╘HE ╨┼┼╦ COMMAND MUST BE ENCLOSED IN PARENTHESES FOR THE ╒ SPECIFIER TO WORK.
┴LL SOFTWARE MIGHT NOT BE ABLE TO RUN OFF ANY OTHER DISK DRIVE THAN DEVICE 8. ╘O CIRCUMVENT THIS SLOPPY PROGRAMMING PRACTICE, YOU MAY SIMPLY CHANGE OR SWAP DEVICE NUMBERS. ╨LEASE REFER TO YOUR DISK DRIVE MANUAL FOR THE COMMAND SEQUENCE NEEDED. ╙WAPPING DEVICE NUMBERS, SAY BETWEEN DEVICE NUMBERS 8 AND 9 IS DONE BY TEMPORARILY SETTING DEVICE 9 TO, SAY, 30, CHANGING DEVICE 8 TO 9, AND THEN CHANGING THE DISK DRIVE NOW USING DEVICE NUMBER 30 TO 8.
┼─╔╘ ├╧══┴╬─ ╠╔╬┼:
┘OU MAY WANT TO EDIT A COMMAND LINE BOOT SECTOR FOR DEBUGGING PURPOSES OR OTHER REASONS. ╘HE BOOT SECTOR WILL BE READ OFF THE DISK AND A CHECK IS MADE TO ESTABLISH IF A VALID BOOT SECTOR REALLY EXIST AND THAT IT CONTAINS A COMMAND LINE. ╔F EVERYTHING IS FOUND TO BE ╧╦, EDITING THE COMMAND LINE IS JUST LIKE CREATING IT FOR THE FIST TIME. ╨LEASE REFER TO THE SECTION ABOUT CREATION OF A BOOT SECTOR ABOVE. ╘HE BOOT MESSAGE CANNOT BE EDITED.
╥╒╬/64 ┬╧╧╘ ╙┼├╘╧╥:
╘HIS SELECTION WILL CREATE A BOOT SECTOR WHICH WILL LOAD A 64 MODE PROGRAM INTO COMPUTER MEMORY, SWITCH TO 64 MODE, AND RUN IT. ╔F YOU HAVE A 1571 OR 1581 DISK DRIVE, THE 128 BURST LOAD WILL BE ACTIVE, AND WILL LOAD YOUR PROGRAM MANY TIMES FASTER THAN IN 64 MODE. ╘HE PROGRAM TO BE LOADED MUST BE A ┬┴╙╔├ PROGRAM OR A ═╠ PROGRAM WHICH IS STARTED WITH A ╥╒╬ COMMAND.
╘HE BOOT SECTOR WILL WORK WITH DRIVES OF ANY DEVICE NUMBER. ╚OWEVER, THE PROGRAM YOU LOAD MIGHT NOT ME ABLE TO DO THIS.
╨LEASE NOTE THAT THE BOOT SECTOR CAN'T SAFELY HANDLE PROGRAMS BIGGER THAN 153 BLOCKS. ╚OWEVER, IT IS WORTH TRYING BIGGER PROGRAMS, AS THEY MAY VERY WELL WORK, ESPECIALLY PROGRAMS OF UP TO 201 BLOCKS. ╘HE BOOT SECTOR CAN'T HANDLE LARGE PROGRAM AS WELL AS THE ═AIN ═ENU ├64 OPTIONS BECAUSE OF MEMORY CONSTRAINTS. ╙OME ╥┴═ UNDER THE 64 MODE ╥╧═S AND ╔/╧ IS CORRUPTED DURING SETUP OF THE 64 MODE.
┘OU WILL BE WARNED IF A BOOT SECTOR IS ALREADY PRESENT ON THE DISK, OR IF THE BOOT SECTOR IS TAKEN BY A PROGRAM OR OTHER DATA.
┬ESIDES ENTERING THE FILE NAME TO BE LOADED, YOU ARE ASKED IF YOU WANT TO RESET THE 1571 DRIVE. ╥ESETTING THE 1571 WILL SWITCH IT TO 1541 MODE WHICH MAY ME NECESSARY TO RETAIN COMPATIBILITY WITH THE SOFTWARE YOU ARE USING. ╔F YOU WANT TO ENJOY THE DOUBLE SIDED MODE ON THE 1571 IN 64 MODE, SELECT ╬╧╘ TO RESET THE DRIVE. ╔F YOU HAVE ╩IFFY─OS INSTALLED IN YOUR SYSTEM, YOU SHOULD RESET THE DRIVE IN ANY CASE, SINCE ╩IFFY─OS WILL BE ACTIVE ONLY IF THE DRIVE IS OPERATING IN 1541 MODE, WHILE STILL BEING ABLE TO USE DOUBLE SIDED DISKS. ╔F YOU ELECT TO RESET THE 1571 AND THE DISK IS LATER BOOTED FROM ANOTHER DRIVE TYPE, THE ERROR LIGHT WILL FLASH. ╚OWEVER, THIS IS WITHOUT HARMFUL SIDE-EFFECTS.
┘OU WILL BE ASKED IF IT IS ╧╦áTO PROCEED, AND THE BOOT SECTOR WILL THEN BE WRITTEN TO DISK.
╠╧┴─ "",X,1/64 ┬╧╧╘:
╘HIS SELECTION WILL CREATE A BOOT SECTOR THAT SWITCHES THE COMPUTER TO 64 MODE, AND THEN PERFORMS A LOAD COMMAND SIMILAR TO ╠╧┴─ "PROGRAM",8,1. ┘OU ARE NOT REQUIRED TO USE DEVICE 8 HOWEVER, THE BOOT SECTOR WILL WORK WITH ALL DEVICE NUMBERS. ╘HE SOFTWARE YOU ARE USING MIGHT NOT BE ABLE TO WORK WITH SUCH VARIETY OF DEVICE NUMBERS THOUGH. ╘HE BOOT SECTOR CAN HANDLE PROGRAMS OF UP TO 201 BLOCKS.
┘OU WILL BE WARNED IF A BOOT SECTOR IS ALREADY PRESENT ON THE DISK, OR IF THE BOOT SECTOR IS TAKEN BY A PROGRAM OR OTHER DATA.
┘OU WILL BE ASKED TO ENTER A FILE NAME TO BE LOADED BY THE BOOT SECTOR CODE. ╧PTIONALLY, YOU MAY ALSO ENTER A COMMAND LINE OF UP TO 12 CHARACTERS TO BE EXECUTED AFTER THE PROGRAM HAS BEEN LOADED. ╘YPICALLY, YOU WOULD USE ╥╒╬ OR ╙┘╙ TO START THE PROGRAM. ╨LEASE NOTE THAT YOU DON'T HAVE TO ADD A RETURN CHARACTER TO THE COMMAND, THE BOOT SECTOR WILL EXECUTE THE COMMAND LINE AUTOMATICALLY. ╔F THE PROGRAM IS AUTO-RUNNING, MEANING THAT IT RUNS BY ITSELF WITHOUT THE NEED FOR A ╥╒╬ OR ╙┘╙ CALL, PRESS ╥┼╘╒╥╬ WITHOUT ENTERING ANYTHING.
┘OU'LL ALSO BE ASKED IF YOU WANT TO RESET THE 1571 DRIVE. ╥ESETTING THE 1571 WILL SWITCH IT TO 1541 MODE WHICH MAY ME NECESSARY TO RETAIN COMPATIBILITY WITH THE SOFTWARE YOU ARE USING. ╔F YOU WANT TO ENJOY THE DOUBLE SIDED MODE ON THE 1571 IN 64 MODE, SELECT ╬╧╘ TO RESET THE DRIVE. ╔F YOU HAVE ╩IFFY─OS INSTALLED IN YOUR SYSTEM, YOU SHOULD RESET THE DRIVE IN ANY CASE, SINCE ╩IFFY─OS WILL BE ACTIVE ONLY IF THE DRIVE IS OPERATING IN 1541 MODE, WHILE STILL BEING ABLE TO USE DOUBLE SIDED DISKS. ╔F YOU ELECT TO RESET THE 1571 AND THE DISK IS LATER BOOTED FROM ANOTHER DRIVE TYPE, IT WON'T PRODUCE ANY SIDE-EFFECTS.
┘OU WILL BE ASKED IF IT IS ╧╦áTO PROCEED, AND THE BOOT SECTOR WILL THEN BE WRITTEN TO DISK.
┬╧╧╘ ╘╧ ╞╔╠┼:
╘HIS FEATURE READS THE BOOT SECTOR OFF A DISK AND SAVES IT AS A ╨╥╟ FILE. ╔T MIGHT BE USEFUL TO USE THE ╨╥╟ FILE AS A BACKUP COPY OF THE BOOT SECTOR, ESPECIALLY IF YOU WANT TO REPLACE THE ORIGINAL BOOT SECTOR. ╨LEASE NOTE THAT ONLY TRACK 0, SECTOR 1 WILL BE SAVED. ═ULTISECTOR BOOT AREAS CAN'T BE SAVED BY THIS UTILITY. ╔F IN DOUBT, PLEASE USE THE ┴NALYZE ┬OOT ╙ECTOR OPTION TO SEE IF ADDITIONAL BOOT SECTORS ARE PRESENT.
╘HE FILE CREATED BY THIS UTILITY WILL BE FULLY EXECUTABLE. ╘HAT IS, RATHER THAN BOOTING THE DISK, YOU MAY NOW BOOT THE ╨╥╟ FILE:
BANK 15:BOOT "BOOTFILE"
╙OMETIMES, THIS APPROACH WON'T WORK. ╨LEASE ANALYZE THE BOOT SECTOR YOU ARE GOING TO CONVERT AND SEE IF A ╨╥╟ FILE IS LOADED BY THE BOOT SECTOR. ╘O MAKE THE BOOTFILE WORK IS SUCH CASES, USE THE FOLLOWING COMMAND SYNTAX:
BLOAD "PRGFILE",B0:BANK 15:BOOT"BOOTFILE"
╘HE ABOVE COMMANDS MAY EASILY BE USED AS PART OF THE COMMAND LINE IN A CUSTOM BOOT SECTOR CREATED BY THE ├REATE UTILITY. ╞OR EXAMPLE, YOU MAY WANT TO SEND COMMANDS TO A PRINTER INTERFACE OR CHANGE DISK DEVICE NUMBERS BEFORE BOOTING YOUR SOFTWARE. ╨LEASE NOTE THAT A BOOTFILE WILL OVERWRITE THE BOOT SECTOR IN THE COMPUTER'S MEMORY WHEN EXECUTED. ╔T IS THEREFORE NOT POSSIBLE FOR A CUSTOM BOOT SECTOR TO LOAD OR BOOT A BOOTFILE AND THEN RETURN FOR FURTHER ┬┴╙╔├ COMMANDS. ╘HIS CONDITION WILL INVOKE A ╙┘╬╘┴╪ ┼╥╥╧╥, OR COULD EVEN CRASH THE SYSTEM. ╘HE EXECUTION OF THE BOOTFILE SHOULD BE EXECUTED ╠┴╙╘ IN A CUSTOM BOOT SECTOR COMMAND LINE.
╘HE TRANSFER PROCESS BEGINS BY READING THE BOOT SECTOR OFF THE DISK IN THE DRIVE. ┘OU'LL THEN BE PROMPTED FOR A FILE NAME, THEN THE TARGET DISK, A DISK WHERE TO STORE THE RESULTING FILE. ╘HE TARGET DISK MUST BE PUT INTO THE SAME DRIVE THAT WAS USED TO READ THE BOOT SECTOR.
╞╔╠┼ ╘╧ ┬╧╧╘:
╘O DO THE REVERSE OF THE ABOVE, USE THIS UTILITY. ┴ ╨╥╟ FILE IS READ FROM DISK AND ITS CONTENTS IS PLACED IN THE BOOT SECTOR. ╘HE COMBINATION OF THE BOOT TRANSFER UTILITIES MAY BE USED FOR ARCHIVAL PURPOSES OR FOR TRANSFERRING BOOT SECTORS BETWEEN DISSIMILAR DRIVE TYPES. ╘HE UTILITY CAN'T HANDLE MULTISECTOR BOOT AREAS, FILES LARGER THAN 256 BYTES IS TRUNCATED.
╘HIS UTILITY MAY EQUALLY WELL BE USED TO ENABLE A BOOT SECTOR ENTIRELY OF YOUR OWN DESIGN, WHERE YOU YOURSELF HAVE WRITTEN THE ═╠ CODE. ┴ ╨╥╟ FILE TO BECOME A BOOT SECTOR MUST HAVE THE FOLLOWING STRUCTURE:
1) 7 ZERO BYTES. ┴CTUALLY, THE THREE FIRST BYTES SHOULD CONTAIN THE ┴╙├╔╔ CHARACTERS "CBM", BUT THESE ARE AUTOMATICALLY PROVIDED BY THE TRANSFER UTILITY. ┘OU MAY SUBSTITUTE THE THREE FIRST BYTES WITH A ╩═╨ INSTRUCTION TO THE START OF THE ═╠ CODE FOR DEBUGGING PURPOSES. ╔NCIDENTALLY, THIS IS WHAT THE ╘RANSFER ┬OOT ╘O ╞ILE UTILITY DOES.
2) ╧PTIONAL BOOT MESSAGE (┬╧╧╘ XXXX ....). ┴LL ├┬═ ┴╙├╔╔ CHARACTERS CAN BE USED AND THE LENGTH OF THE STRING IS LIMITED ONLY BY THE SIZE OF THE BOOT SECTOR.
3) ╧NE ZERO BYTE (REGARDLESS IF YOU INCLUDE A BOOT MESSAGE OR NOT).
4) ╧PTIONAL ╨╥╟ FILE TO LOAD. ╔F YOU PROVIDE A FILE NAME AT THIS POINT IT WILL BE LOADED INTO BANK 0 MEMORY (SIMILAR TO ┬╠╧┴─ "FILE",B0), BUT IT WILL ╬╧╘ BE CALLED. ┴NY CALL ADDRESS MUST BE PROVIDED IN THE ═╠ CODE (SEE BELOW).
5) ╧NE ZERO BYTE (REGARDLESS IF YOU PROVIDE A FILE NAME OR NOT).
6) ═╠ CODE. ╘HIS IS NORMAL 6502 ═╠ CODE.
╘HE EXACT START OF THE ═╠ CODE WILL BE DETERMINED BY THE LENGTH OF THE BOOT MESSAGE AND/OR FILE NAME, IF ANY. ╔N ITS SIMPLEST FORM, A BOOT SECTOR MAY CONTAIN 9 ZERO BYTES (NO BOOT MESSAGE OR FILE NAME) AND THE ═╠ CODE MUST THEN START AT THE 10TH BYTE. ┴NY USE OF BOOT MESSAGE AND/OR FILE NAME WILL FORCE THE START OF THE ═╠ CODE UPWARDS. ┴S THE COMPUTER'S BOOT BUFFER STARTS AT 2816 ($0B00), THE ACTUAL ENTRY POINT OF THE ═╠ CODE CAN BE CALCULATED USING THE FOLLOWING FORMULA:
2816+9+LENGTH OF BOOT MESSAGE+LENGTH OF FILE NAME
╘HE TRANSFER PROCESS IS INITIATED BY A PROMPT FOR A FILE NAME AND THE FILE WILL BE READ OFF THE DISK. ┘OU'LL THE BE ASKED FOR THE TARGET DISK, THE DISK WHERE TO PUT THE BOOT SECTOR. ┘OU'LL BE WARNED IF THE TARGET DISK ALREADY HAS A VALID BOOT SECTOR OR IF THE BOOT SECTOR IS OCCUPIED BY A FILE. ╘HEN, THE BOOT SECTOR IS SAVED TO DISK.
├╧╨┘ ┬╧╧╘ ╙┼├╘╧╥:
┘OU MAY EASILY COPY A BOOT SECTOR FROM ONE DISK TO ANOTHER. ╨LEASE NOTE THAT ONLY TRACK 1, SECTOR 0 WILL BE TRANSFERRED. ═ULTISECTOR BOOT AREAS CANNOT BE TRANSFERRED BY THIS ROUTINE.
╘HE ORIGINAL BOOT SECTOR IS READ OFF THE DISK AND YOU'LL BE PROMPTED FOR THE TARGET DISK, THE DISK WHERE TO SAVE THE BOOT SECTOR. ┘OU'LL BE WARNED IF THE TARGET DISK ALREADY HAS A VALID BOOT SECTOR OR IF THE BOOT SECTOR IS OCCUPIED BY A FILE. ╘HEN, THE BOOT SECTOR IS SAVED TO DISK.
╦╔╠╠ ┴╒╘╧┬╧╧╘:
┘OU MAY WANT TO REMOVE THE BOOT FEATURE FROM A DISK, AND THIS SELECTION WILL ENABLE YOU TO DO SO. ┴CTUALLY, THIS UTILITY ISN'T VERY RADICAL, THE "CBM" BOOT SECTOR IDENTIFIER IS CHANGED TO "KBM", AND THE BOOT SECTOR IS MARKED AS FREE IN THE ┬┴═. ╔T MAY BE A GOOD IDEA TO TRANSFER THE BOOT SECTOR TO A FILE BEFORE KILLING IT.
┘OU'LL BE ASKED IF IT IS ╧╦ TO COMMENCE THE ACTION TO BE PERFORMED. ╘HEN, THE BOOT SECTOR WILL BE DISABLED. ┘OU'LL BE NOTIFIED IF A BOOT SECTOR DON'T EXIST ON THE DISK, AND NO CHANGES WILL THEN BE MADE.
╒╬-╦╔╠╠ ┴╒╘╧┬╧╧╘:
╔F YOU HAVE KILLED A BOOT SECTOR, EITHER DELIBERATELY OR BY ACCIDENT, IT MAY BE RE-ENABLED WITH THIS FEATURE. ╙INCE THE ╦ILL FEATURE MARKS THE BOOT SECTOR AS FREE IN THE ┬┴═, THE BOOT SECTOR MIGHT EASILY BE OVERWRITTEN BY A FILE SAVED TO DISK. ╔T IS THEREFORE FEASIBLE TO UN-KILL A BOOT SECTOR AS SOON AS POSSIBLE.
╘HE DISK IS CHECKED TO SEE IF IT CONTAINS A RECOVERABLE BOOT SECTOR, AND YOU'RE ASKED IF IT IS ╧╦ TO PROCEED. ╘HE BOOT SECTOR IS THEN RESURRECTED.
╨╥╧╘┼├╘ ╙┼├╘╧╥(╙)
╞OR A BOOT SECTOR TO BE SAFE, IT MUST BE PROTECTED BY THE ┬LOCK ┴VAILABILITY ═AP (┬┴═). ┴LTHOUGH THE ─╧╙ COMMANDS VALIDATE WILL PROTECT THE BOOT SECTOR, THE ┬┴╙╔├ ├╧╠╠┼├╘ COMMAND AND OTHER WAYS OF VALIDATING THE DISK WILL DE-PROTECT IT AGAIN. ╘O MAKE THINGS RIGHT, THE ┴UTOBOOT ╘OOL PROTECT COMMAND WILL RE-PROTECT THE BOOT SECTOR(S) WITHOUT VALIDATING THE WHOLE DISK. ╨LEASE NOTE THAT MULTISECTOR BOOT AREAS ╫╔╠╠ BE PROTECTED BY THIS UTILITY.